package com.ark.cloud.javacallnative.entity;

/**
 * Copyright(c): 2021 Cloud-Ark Inc.
 * Author(s): Ma Wei (mawei@cloud-ark.com)
 */

import com.ark.cloud.javacallnative.enums.IdentificationStatus;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.omg.PortableInterceptor.LOCATION_FORWARD;

import java.util.ArrayList;

/**
 * 目标数据
 */
@Data
@TableName("contact_state")
public class ContactState {
//    @TableId(type = IdType.AUTO, value = "id")
    @TableField("id")
    private Long cid;

    @TableField("timestamp")
    private String timestamp;         // 此目标数据对应的想定时间

    @TableField("entity_id")
    private String id;                 //	目标ID

    @TableField("name")
    private String name;             // 目标名称
    @TableField("status")
    private short status;           // 目标识别等级
    @TableField("detecting_sideid")
    private String detectingSideId;     //	探测阵营id

    @TableField("know_side")
    private boolean knowSide;         // 是否知道目标阵营
    @TableField("know_speed")

    private boolean knowSpeed;         // 是否知道目标速度

    @TableField("know_heading")
    private boolean knownHeading;     //	是否知道目标航向
    @TableField("know_alt")
    private boolean knowAlt;             //	是否知道目标高度
    @TableField("real_unitid")
    private String realUnitId;         //	此目标对应的真实作战单元的ID
    @TableField("side_id")
    private String sideId;             // 目标所属阵营id
    @TableField("type")
    private short type;             //	目标类别
    @TableField("lon")
    private double lon;                 // 目标经度
    @TableField("lat")
    private double lat;                 // 目标纬度
    @TableField("alt")
    private float alt;             // 目标海拔高度
    @TableField("heading")
    private float heading;             // 目标航向
    @TableField("speed")
    private float speed;             //	目标速度

    private int recordCount;                         // 此目标的探测记录
    private ArrayList<DetectingRecord> recordList;      // 探测记录列表

    public ContactState() {
        status = (short) IdentificationStatus.UnknownStatus.ordinal();
    }

}
